- 文章
- 基于后缀算术表达式的代码解析
- 基于AST的算数表达式解析
- Vscode Java 环境配置
- 纯前端实现图片的模板匹配
- 测试用例管理工具Luckyframe安装
- Vscode远程开发,本地翻墙神器
- 记前端手写方法
- Node 2020年新增功能
- yum-404-error
- react16特性:fiber reconciler解密
- cmd终端设置代理
- 前端面试题收集
- git子模块
- 算法-排序
- linux安装python-pyenv环境
- 开发人员良心工具
- 斐波拉契数列js实现
- 数组ArrayFlatten
- Docker安装部署taiga项目
- 极光推送RN集成
- docker-pm2发布node服务
- git-pull获取指定文件
- git获取第一次commit提交记录
- ReactNative项目选型设计
- Docker-Mysql8.0安装及初始化配置
- DDA算法
- ubuntu搭建shadowsocks服务
- React-Native 接入百度统计SDK
- docker-使用yum安装
- 前端入门篇
- CodePush尝试
- Markdown数学公式
- Mongoose踩坑路
- linux系统nvm指定版本安装
- linux安装nginx
- Vscode-Threejs代码智能提示
- linux常用命令
- 说明
React-Native 接入百度统计SDK
七月 16, 2018准备工作
- 到这里你应该完成了ios和Android的appkey获取
IOS集成
这里采用的手工集成sdk
采用Cocoapods集成可以查看官网 Cocoapods集成
- 下载SDK
- 下载sdk后解压,将
BaiduMobStat.h
和libBaiduMobStat.a
添加到ios的工程中去 - 添加完后
在项目的Build Target添加Linked Frameworks and Libraries,添加列表如下:
Foundation.framework UIKit.framework CoreGraphics.framework CoreTelephony.framework SystemConfiguration.framework CoreLocation.framework Security.framework AdSupport.framework (V4.6.4版本更新后,新增IDFA采集) libstdc++.tbd libz.1.2.5.tbd // 使用“无埋点”版本的SDK,需要额外引用以下两个系统库 libicucore.tbd WebKit.framework(Optional)
至此ios的sdk就集成完毕
导出方法给react-native使用
- 新建
MobStat
文件,如图 - 编写代码
// // MobStatModule.m // example // // Created by 曾相友 on 2018/8/22. // Copyright © 2018年 Facebook. All rights reserved. // //#import <Foundation/Foundation.h> #import <React/RCTEventEmitter.h> #import <React/RCTLog.h> #import "BaiduMobStat.h" @interface MobStatModule : NSObject <RCTBridgeModule> @end @implementation MobStatModule RCT_EXPORT_MODULE(MobStat); RCT_EXPORT_METHOD(setDebugOn:(BOOL) on) { [[BaiduMobStat defaultStat] setEnableDebugOn: on]; } RCT_EXPORT_METHOD(setAppKey:(NSString *) key) { [[BaiduMobStat defaultStat] startWithAppId:key]; } RCT_EXPORT_METHOD(onPageStart:(NSString *)name) { [[BaiduMobStat defaultStat] pageviewStartWithName:name]; } RCT_EXPORT_METHOD(onPageEnd:(NSString *)name) { [[BaiduMobStat defaultStat] pageviewEndWithName:name]; } @end
Android集成
这里采用的gradle集成sdk
配置build.gradle
dependencies { ... compile 'com.baidu.mobstat:mtj-sdk:latest.integration' ... }
编译工程
配置AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.GET_TASKS" />
至此Android的sdk就集成完毕
导出方法给react-native使用
- 新建文件
编写代码
MobStatPackage
:package com.shandudata.zhimekaimen.MobStat; import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; import java.util.Arrays; import java.util.Collections; import java.util.List; public class MobStatPackage implements ReactPackage { @Override public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) { return Arrays.<NativeModule>asList(new MobStatModule(reactContext)); } @Override public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } }
编写代码
MobStatModule
:package com.shandudata.zhimekaimen.MobStat; import com.baidu.mobstat.StatService; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; public class MobStatModule extends ReactContextBaseJavaModule { private ReactApplicationContext reactContext; public MobStatModule(ReactApplicationContext reactContext) { super(reactContext); this.reactContext = reactContext; } @Override public String getName() { return "MobStat"; } @ReactMethod public void setAppKey(String key) { StatService.setAppKey(key); } @ReactMethod public void setDebugOn(boolean on) { StatService.setDebugOn(on); } @ReactMethod public void onPageStart(String name) { StatService.onPageStart(this.reactContext, name); } @ReactMethod public void onPageEnd(String name) { StatService.onPageEnd(this.reactContext, name); } }
在
MainApplication
中加入package导出... new MobStatPackage(), ...
react-native使用sdk
新建
MobStat.js
import { NativeModules, Platform } from "react-native"; const { MobStat } = NativeModules; export default { setAppKey: key => MobStat && MobStat.setAppKey(Platform.select(key)), setDebugOn: on => MobStat && MobStat.setDebugOn(on), onPageStart: name => MobStat && MobStat.onPageStart(name), onPageEnd: name => MobStat && MobStat.onPageEnd(name) };
使用
import MobStat from "./MobStat"; // 设置百度统计 MobStat.setAppKey({ ios: config.mobStatIosKey, // config.mobStatIosKey 就是在注册App应用时候获取的key android: config.mobStatAndroidKey // config.mobStatAndroidKey 就是在注册App应用时候获取的key }); MobStat.setDebugOn(true);
百度统计埋点设置
componentDidMount() { MobStat.onPageStart(`title`) } componentWillUnmount() { MobStat.onPageEnd(`title`) }
- 至此完毕
← Mongoose踩坑路
DDA算法 →